Termination Proof Script
Consider the TRS R consisting of the rewrite rules
|
1: |
|
rev(nil) |
→ nil |
2: |
|
rev(x . y) |
→ rev(y) ++ (x . nil) |
3: |
|
car(x . y) |
→ x |
4: |
|
cdr(x . y) |
→ y |
5: |
|
null(nil) |
→ true |
6: |
|
null(x . y) |
→ false |
7: |
|
nil ++ y |
→ y |
8: |
|
(x . y) ++ z |
→ x . (y ++ z) |
|
There are 3 dependency pairs:
|
9: |
|
REV(x . y) |
→ rev(y) ++# (x . nil) |
10: |
|
REV(x . y) |
→ REV(y) |
11: |
|
(x . y) ++# z |
→ y ++# z |
|
The approximated dependency graph contains 2 SCCs:
{11}
and {10}.
-
Consider the SCC {11}.
There are no usable rules.
By taking the AF π with
π(++#) = 1
and π(.) = [2] together with
the lexicographic path order with
empty precedence,
rule 11
is strictly decreasing.
-
Consider the SCC {10}.
There are no usable rules.
By taking the AF π with
π(REV) = 1
and π(.) = [2] together with
the lexicographic path order with
empty precedence,
rule 10
is strictly decreasing.
Hence the TRS is terminating.
Tyrolean Termination Tool (0.01 seconds)
--- May 4, 2006